
# todo: ==================== 业务数据每日同步 ====================
#
#  第1、生产环境中，为了防止主库被Sqoop抽崩，我们一般从备库中抽取数据。
#  第2、一般RDBMS的导出速度控制在60~80MB/s，每个 map 任务的处理速度5~10MB/s 估算，
#  即 -m 参数一般设置4~8，表示启动 4~8 个map 任务并发抽取
#

#
#  并发导入参数如何设置？
#  第1、通过 -m 参数能够设置导入数据的 map 任务数量，即指定 -m 即表示导入方式为并发导入；
#  第2、必须同时指定 --split-by 参数指定根据哪一列来实现哈希分片，从而将不同分片的数据分发到不同 map 任务上去跑，避免数据倾斜。
#

# ======================================================================
#            todo：【每日同步】编码字典表：base_dic（全量，每日）
# ======================================================================
/opt/module/sqoop/bin/sqoop import \
--connect jdbc:mysql://node101:3306/gmall \
--username root \
--password 123456 \
--target-dir /origin_data/gmall/db/base_dic/2024-01-07 \
--delete-target-dir \
--query "SELECT
  dic_code,
  dic_name,
  parent_code,
  create_time,
  operate_time
FROM base_dic
WHERE 1 = 1
  AND \$CONDITIONS" \
--num-mappers 1 \
--fields-terminated-by '\t' \
--compress \
--compression-codec gzip \
--null-string '\\N' \
--null-non-string '\\N'


# ======================================================================
#              todo：【每日同步】 订单详情表：order_detail（增量，每日）
# ======================================================================
/opt/module/sqoop/bin/sqoop import \
--connect jdbc:mysql://node101:3306/gmall \
--username root \
--password 123456 \
--target-dir /origin_data/gmall/db/order_detail/2024-01-07 \
--delete-target-dir \
--query "SELECT
  id,
  order_id,
  sku_id,
  sku_name,
  order_price,
  sku_num,
  create_time,
  source_type,
  source_id,
  split_total_amount,
  split_activity_amount,
  split_coupon_amount
FROM order_detail
WHERE DATE_FORMAT(create_time, '%Y-%m-%d') = '2024-01-07'
  AND \$CONDITIONS" \
--num-mappers 1 \
--fields-terminated-by '\t' \
--compress \
--compression-codec gzip \
--null-string '\\N' \
--null-non-string '\\N'


# ======================================================================
#               todo：【每日同步】 订单表：order_info（新增和变化，每日）
# ======================================================================
/opt/module/sqoop/bin/sqoop import \
--connect jdbc:mysql://node101:3306/gmall \
--username root \
--password 123456 \
--target-dir /origin_data/gmall/db/order_info/2024-01-07 \
--delete-target-dir \
--query "SELECT
  id,
  total_amount,
  order_status, user_id,
  payment_way,
  delivery_address,
  out_trade_no,
  create_time,
  operate_time,
  expire_time,
  tracking_no,
  province_id,
  activity_reduce_amount,
  coupon_reduce_amount,
  original_total_amount,
  feight_fee, feight_fee_reduce
FROM order_info
WHERE (date_format(create_time, '%Y-%m-%d') = '2024-01-07'
  OR date_format(operate_time, '%Y-%m-%d') = '2024-01-07')
  AND \$CONDITIONS" \
--num-mappers 1 \
--fields-terminated-by '\t' \
--compress \
--compression-codec gzip \
--null-string '\\N' \
--null-non-string '\\N'


